package com.bootdo.common.utils;

import java.util.regex.Pattern;

public class HtmlText {
	/**
	 * 
	 * 功能：获取纯文本的方法
	 * 
	 * @Title: Html2Text()
	 * @Date: 2014-5-6 下午2:34:52
	 * @author zonghongyu zonghongyu@hpe.com
	 * @param inputString  输入的文本内容
	 * @return
	 */
	public static String htmlText(String inputString){
	     String htmlStr = inputString; //含html标签的字符串
	     String textStr ="";
	     java.util.regex.Pattern p_script;
	     java.util.regex.Matcher m_script;
	     java.util.regex.Pattern p_style;
	     java.util.regex.Matcher m_style;
	     java.util.regex.Pattern p_html;
	     java.util.regex.Matcher m_html;

	    try{
	          String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> }
	          String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; //定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style> }
	          String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式

	          p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);
	          m_script = p_script.matcher(htmlStr);
	          htmlStr = m_script.replaceAll(""); //过滤script标签

	          p_style = Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE);
	          m_style = p_style.matcher(htmlStr);
	          htmlStr = m_style.replaceAll(""); //过滤style标签

	          p_html = Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
	          m_html = p_html.matcher(htmlStr);
	          htmlStr = m_html.replaceAll(""); //过滤html标签

	          textStr = htmlStr.replaceAll("<", "");
	          textStr = htmlStr.replaceAll("<span", "");
	          textStr = htmlStr.replaceAll("<br>", "");
	          textStr = htmlStr.replaceAll("<table class=", "");
	          textStr = htmlStr.replaceAll("<table width=", "");
	          textStr = textStr.replaceAll("＜p＞", "");
	          textStr = textStr.replaceAll("＜/p＞", "");
	          textStr = textStr.replaceAll("＜br/＞", "");
	     }catch(Exception e){
	    	 e.printStackTrace();
	     }
	     return textStr;//返回文本字符串
	 }  
	
	/***
	 * 
	 * 方法描述:过滤标签及标签中的样式
	 *
	 * @Author:xujiajia@itonghui.org
	 * @date: 2017-1-13 下午2:37:40 
	 * @param inputString
	 * @return
	 */
	public static String delHTMLTag(String inputString){  
		 String htmlStr = inputString; //含html标签的字符串
	     String textStr ="";
	     java.util.regex.Pattern p_script;
	     java.util.regex.Matcher m_script;
	     java.util.regex.Pattern p_style;
	     java.util.regex.Matcher m_style;
	     java.util.regex.Pattern p_html;
	     java.util.regex.Matcher m_html;

	    try{
	          String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> }
	          String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; //定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style> }
	          String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式

	          p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);
	          m_script = p_script.matcher(htmlStr);
	          htmlStr = m_script.replaceAll(""); //过滤script标签

	          p_style = Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE);
	          m_style = p_style.matcher(htmlStr);
	          htmlStr = m_style.replaceAll(""); //过滤style标签

	          p_html = Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
	          m_html = p_html.matcher(htmlStr);
	          htmlStr = m_html.replaceAll(""); //过滤html标签

	          textStr = htmlStr.replaceAll("<", "");
	          textStr = htmlStr.replaceAll("<span", "");
	          textStr = htmlStr.replaceAll("<br>", "");
	          textStr = htmlStr.replaceAll("<table class=", "");
	          textStr = htmlStr.replaceAll("<table width=", "");
	          textStr = textStr.replaceAll("＜p＞", "");
	          textStr = textStr.replaceAll("＜/p＞", "");
	          textStr = textStr.replaceAll("＜br/＞", "");
	          textStr = textStr.replaceAll("＜p.*?＞", "");
	          textStr = textStr.replaceAll("＜a.*?＞", "");
	          textStr = textStr.replaceAll("＜table.*?＞", "");
	          textStr = textStr.replaceAll("＜tr.*?＞", "");
	          textStr = textStr.replaceAll("＜td.*?＞", "");
	     }catch(Exception e){
	    	 e.printStackTrace();
	     }
	     return textStr;//返回文本字符串
	}

}
